var binaryTreePaths = function (root) {
    let result = []
    let path = []

    function dfs(root) {
        path.push(root.val)   // 中节点
        if (root.left === null && root.right === null) {  // 递归出口，收集结果
            result.push(path.slice().join('->'))
        }
        if (root.left) {  // 左节点
            dfs(root.left)
            path.pop()
        }
        if (root.right) {  // 右节点
            dfs(root.right)
            path.pop()
        }
    }
    dfs(root)
    return result;
};